home *** CD-ROM | disk | FTP | other *** search
- 10 KEY OFF:CLS
- 20 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 30 PRINT"░┌───────────────────────────────────┐░"
- 40 PRINT"░│ │░"
- 50 PRINT"░│ 2043-A.BAS │░"
- 60 PRINT"░│ DROIDS │░"
- 70 PRINT"░│ │░"
- 80 PRINT"░│ │░"
- 90 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
- 100 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
- 110 PRINT"░│ █ █ █ █ █ █ │░"
- 120 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
- 130 PRINT"░│ █ █ █ █ █ │░"
- 140 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
- 150 PRINT"░│ │░"
- 160 PRINT"░│ International PC Owners │░"
- 170 PRINT"░│ │░"
- 180 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
- 190 PRINT"░│ │░"
- 200 PRINT"░└───────────────────────────────────┘░"
- 210 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 220 PRINT
- 230 PRINT " PRESS ANY KEY TO CONTINUE
- 240 A$=INKEY$: IF A$="" THEN 240
- 250 CLS
- 1000 REM DROIDS GAME
- 1010 SAMPLE$="NO"
- 1020 GOTO 1040
- 1030 SAMPLE$="YES"
- 1040 BL$=" "
- 1050 DEF SEG=64:POKE 23,64:REM CAPITAL LETTERS
- 1060 ORE=254
- 1070 DIM PL$(4),CH(4)
- 1080 CH(1)=65:CH(2)=66:CH(3)=67:CH(4)=68
- 1090 SCREEN 0,1,0,0:WIDTH 40:LOCATE ,,0:GOSUB 1350
- 1100 GOSUB 1700
- 1110 GOSUB 1850
- 1120 NP=1:NP1=0
- 1130 GOSUB 2290
- 1140 GOSUB 2030
- 1150 GOSUB 2200
- 1160 NP1=NP1+1:NP1=NP1 MOD NPLAY:NP=NP1+1
- 1170 GOTO 1130
- 1180 REM GAMEBOARD
- 1190 CLS:COLOR 14,0,0
- 1200 X$=CHR$(ORE)
- 1210 X15$=X$
- 1220 FOR I=1 TO 14:X15$=X15$+X$:NEXT
- 1230 FOR J=3 TO 12:LOCATE J,5:PRINT X15$:NEXT
- 1240 RETURN
- 1250 REM COMPASS
- 1260 YC=8:XC=30
- 1270 LOCATE YC,XC-3:PRINT "W";CHR$(196);CHR$(196);CHR$(197);CHR$(196);CHR$(196);"E"
- 1280 LOCATE YC-3,XC:PRINT "N"
- 1290 LOCATE YC-2,XC-3:PRINT "NW ";CHR$(179);" NE"
- 1300 LOCATE YC+2,XC-3:PRINT "SW ";CHR$(179);" SE"
- 1310 LOCATE YC-1,XC-1:PRINT "\";CHR$(179);"/"
- 1320 LOCATE YC+1,XC-1:PRINT "/";CHR$(179);"\"
- 1330 LOCATE YC+3,XC:PRINT "S"
- 1340 RETURN
- 1350 REM INSTRUCTIONS
- 1360 COLOR 7,0:CLS
- 1370 LOCATE 5,12:PRINT "WELCOME TO DROIDS"
- 1380 PRINT :PRINT " DO YOU WANT INSTRUCTIONS? (Y OR N)"
- 1390 RESP$=INKEY$:IF RESP$="" THEN GOTO 1390
- 1400 IF RESP$="N" OR RESP$="n" THEN RETURN
- 1410 CLS
- 1420 PRINT :PRINT "DROIDS ARE USED TO HUNT FOR MINERALS"
- 1430 PRINT "ON THE PLANET MERCURY. THE HUMANS ON"
- 1440 PRINT "MERCURY PLAY THIS GAME WITH FOUR DROIDS"
- 1450 PRINT "ON A FIELD WHICH CONTAINS VALUABLE ORE!"
- 1460 PRINT :PRINT "THE VALUABLE ORE LOOKS LIKE THIS: ";:COLOR 14:PRINT CHR$(ORE):COLOR 7
- 1470 PRINT :PRINT "DO YOU WANT TO SEE THE GAME BOARD (Y/N)?";
- 1480 RESP$=INKEY$:IF RESP$="" THEN GOTO 1480
- 1490 IF RESP$="Y" OR RESP$="y" THEN GOSUB 1180
- 1500 COLOR 7:PRINT:PRINT "THE DROIDS ARE NAMED ";CHR$(CH(1));", ";CHR$(CH(2));", ";CHR$(CH(3));" AND ";CHR$(CH(4));"."
- 1510 PRINT "GOING IN TURN, THE PLAYERS (UP TO 4)"
- 1520 PRINT "MOVE ANY DROID WHICH CAN COLLECT ORE."
- 1530 PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:COLOR 7:PRINT " (PIECE"
- 1540 PRINT "OF ORE) AND HIGH SCORE WINS.
- 1550 PRINT "DROIDS GO NORTH, SOUTH, EAST, WEST, OR"
- 1560 PRINT "DIAGONALLY, BUT ONLY IN A STRAIGHT LINE"
- 1570 PRINT "AND ONLY ONTO SQUARES WITH ORE."
- 1580 PRINT :PRINT "ANY PLAYER MAY MOVE ANY DROID."
- 1590 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
- 1600 RESP$=INKEY$:IF RESP$="" THEN GOTO 1600
- 1610 CLS:GOSUB 1250
- 1620 PRINT :PRINT :PRINT "TO MOVE A DROID TYPE ITS SYMBOL AND"
- 1630 PRINT "DIRECTION TO GO (N,NE,E,SE,S,SW,W,NW)."
- 1640 PRINT :PRINT "THE DROID WILL GO THAT WAY UNTIL IT"
- 1650 PRINT "RUNS OUT OF ORE. "
- 1660 PRINT :PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:PRINT ".":COLOR 7
- 1670 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
- 1680 RESP$=INKEY$:IF RESP$="" THEN GOTO 1680
- 1690 RETURN
- 1700 REM GET PLAYER NAMES PL$(NP)
- 1710 CLS
- 1720 PRINT "HOW MANY PLAYERS? (1 TO 4)"
- 1730 RESP$=INKEY$:IF RESP$="" THEN GOTO 1730
- 1740 IF RESP$<"1" OR RESP$>"4" THEN PRINT "PLEASE TYPE 1,2,3, OR 4":GOTO 1730
- 1750 NPLAY=VAL(RESP$)
- 1760 PRINT NPLAY;"PLAYERS, RIGHT? (Y OR N)"
- 1770 RESP$=INKEY$:IF RESP$="" THEN GOTO 1770
- 1780 IF RESP$="N" OR RESP$="n" THEN GOTO 1720
- 1790 PRINT "NOW, ENTER THE NAMES OF THE PLAYERS."
- 1800 FOR I=1 TO NPLAY
- 1810 PRINT "TYPE THE NAME FOR PLAYER ";I;" AND PRESS ENTER KEY.":INPUT "",PL$(I)
- 1820 PRINT "WELCOME ";PL$(I);"!"
- 1830 NEXT
- 1840 RETURN
- 1850 REM SETUP PLAYING ENVIRONMENT
- 1860 GOSUB 1180
- 1870 GOSUB 1250
- 1880 COLOR 1
- 1890 RANDOMIZE VAL(MID$(TIME$,7,2)+MID$(TIME$,4,2))
- 1900 FOR J=1 TO 4
- 1910 IX(J)=INT(15*RND)+5
- 1920 IY(J)=INT(10*RND)+3
- 1930 CHT=SCREEN (IY(J),IX(J)):IF CHT<>ORE THEN 1910
- 1940 LOCATE IY(J),IX(J):PRINT CHR$(CH(J))
- 1950 NEXT
- 1960 COLOR 7:LOCATE 14,5
- 1970 PRINT "SCORE PLAYER'S NAME"
- 1980 FOR J=1 TO NPLAY
- 1990 SC(J)=0
- 2000 LOCATE 14+J,5:PRINT SC(J),PL$(J)
- 2010 NEXT
- 2020 RETURN
- 2030 REM PLAYER NUMBER NP'S MOVE
- 2040 LOCATE 20,1:FOR I=1 TO 3:PRINT BL$:NEXT
- 2050 LOCATE 20,1:PRINT PL$(NP);", TYPE A DROID'S SYMBOL ":INPUT "AND PRESS ENTER ",DJ$
- 2060 IF DJ$=CHR$(CH(1)) OR DJ$=CHR$(CH(2)) OR DJ$=CHR$(CH(3)) OR DJ$=CHR$(CH(4)) THEN GOTO 2070 ELSE GOTO 2040
- 2070 LOCATE 22,1:INPUT "TYPE A DIRECTION AND PRESS ENTER ",DIR$
- 2080 IF DIR$="N" THEN DY=-1:DX=0:GOTO 2170
- 2090 IF DIR$="NE" THEN DY=-1:DX=1:GOTO 2170
- 2100 IF DIR$="E" THEN DY=0:DX=1:GOTO 2170
- 2110 IF DIR$="SE" THEN DY=1:DX=1:GOTO 2170
- 2120 IF DIR$="S" THEN DY=1:DX=0:GOTO 2170
- 2130 IF DIR$="SW" THEN DY=1:DX=-1:GOTO 2170
- 2140 IF DIR$="W" THEN DY=0:DX=-1:GOTO 2170
- 2150 IF DIR$="NW" THEN DY=-1:DX=-1:GOTO 2170
- 2160 GOTO 2070
- 2170 FOR J=1 TO 4:IF CHR$(CH(J))=DJ$ THEN DN=J
- 2180 NEXT
- 2190 RETURN
- 2200 REM GAME MOVE FOR PLAYER NUMBER NP WITH DROID SYMBOL DJ$ AND DIRECTION DX,DY AND SCORE SC(NP) DROID NUMBER DN
- 2210 CT=SCREEN (IY(DN)+DY,IX(DN)+DX)
- 2220 IF CT<>ORE THEN RETURN
- 2230 LOCATE IY(DN),IX(DN):PRINT CHR$(0)
- 2240 IY(DN)=IY(DN)+DY:IX(DN)=IX(DN)+DX
- 2250 SC(NP)=SC(NP)+1:LOCATE 14+NP,5:PRINT SC(NP)
- 2260 LOCATE IY(DN),IX(DN):COLOR 1:PRINT CHR$(CH(DN)):COLOR 7
- 2270 PLAY "O1 T200 G"
- 2280 GOTO 2210
- 2290 REM CHECK ENDGAME
- 2300 STP$="YES"
- 2310 FOR J=1 TO 4
- 2320 FOR JX=-1 TO 1
- 2330 FOR JY=-1 TO 1
- 2340 CT=SCREEN (IY(J)+JY,IX(J)+JX)
- 2350 IF CT=ORE THEN STP$="NO"
- 2360 NEXT :NEXT :NEXT
- 2370 IF STP$="NO" THEN RETURN
- 2380 LOCATE 17+6,5:PRINT "GAME IS OVER"
- 2390 PRINT "PLAY AGAIN? (Y OR N)"
- 2400 RESP$=INKEY$:IF RESP$="" THEN GOTO 2400
- 2410 IF RESP$="Y" OR RESP$="y" THEN GOTO 1090
- 2420 IF SAMPLE$="YES" THEN CHAIN "SAMPLES",1000 ELSE END
- 2430 GOTO 1030
- 400
- 2410 IF RESP$="Y" OR RESP$="y" THEN GOTO 1090
- 2420 IF SAMPLE$=